package com.zl.autocode.service.autocode;

import com.zl.autocode.dto.autocode.table.ReqTableAddDTO;
import com.zl.autocode.dto.autocode.table.ReqTableDelDTO;
import com.zl.autocode.dto.autocode.table.ReqTableDetailDTO;
import com.zl.autocode.dto.autocode.table.ReqTableEditDTO;
import com.zl.autocode.dto.autocode.table.ReqTableQueryDTO;
import com.zl.autocode.dto.autocode.table.ReqTableStateDTO;
import com.zl.autocode.dto.autocode.table.ResTableAddDTO;
import com.zl.autocode.dto.autocode.table.ResTableDelDTO;
import com.zl.autocode.dto.autocode.table.ResTableDetailDTO;
import com.zl.autocode.dto.autocode.table.ResTableEditDTO;
import com.zl.autocode.dto.autocode.table.ResTableQueryDTO;
import com.zl.autocode.dto.autocode.table.ResTableStateDTO;
import com.zl.common.dto.ReqDTO;
import com.zl.common.dto.pagination.PageReqVO;

/**
 * 数据库表信息
 * @author ZL
 */
public interface ITableService {

    /**
     * 查询
     */
    ResTableQueryDTO queryTableList(ReqDTO<ReqTableQueryDTO> reqInfo) throws Exception;
    
    /**
     * 详情
     */
    ResTableDetailDTO queryTableDetail(ReqDTO<ReqTableDetailDTO> reqInfo) throws Exception;
    
    /**
     * 新增
     */
    ResTableAddDTO insertTableInfo(ReqDTO<ReqTableAddDTO> reqInfo) throws Exception;
    
    /**
     * 编辑
     */
    ResTableEditDTO updateTableInfo(ReqDTO<ReqTableEditDTO> reqInfo) throws Exception;
    
    /**
     * 删除
     */
    ResTableDelDTO deleteTableInfo(ReqDTO<ReqTableDelDTO> reqInfo) throws Exception;
    
    /**
     * 更新状态
     */
    ResTableStateDTO updateTableState(ReqDTO<ReqTableStateDTO> reqInfo) throws Exception;
    
    /**
     * 查询
     */
    ResTableQueryDTO queryTableColumnList(ReqDTO<ReqTableQueryDTO> reqInfo) throws Exception;
    
    /**
     * 删除包含字段
     */
    ResTableDelDTO deleteTableAndColumn(ReqDTO<ReqTableDelDTO> reqInfo) throws Exception;
}